package com.atguigu.wulaoshi

object Test {
  def main(args: Array[String]): Unit = {
    //1.函数的嵌套与闭包
    def func(i:Int):String=>Char =>Boolean ={
      def f1(s:String): Char=>Boolean ={
        def f2(c:Char): Boolean ={
          if( i== 0 && s == "" && c=='0') false else true
        }
        f2
      }
      f1
    }
    //2.通过匿名函数进行简写
    def func2(i:Int):String=>Char=>Boolean={
      (s:String)=>{
        (c:Char)=>if( i== 0 && s == "" && c=='0') false else true
      }
    }
      //2.1进一步简写:因为函数已经定义了返回值,所以内部可以直接省略参数类型
    def func1(i:Int):String=>Char=>Boolean = s=>c=>if( i== 0 && s == "" && c=='0') false else true
    //3.函数定义返回值太难了,直接柯里化简写
    def fun(i:Int)(s:String)(c:Char):Boolean=if( i== 0 && s == "" && c=='0') false else true
  }

}
